﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace Biuro.Formy
{
    public partial class AddEditOrder : Form
    {
        public AddEditOrder()
        {
            InitializeComponent();
        }


        public string KlientImie
        {
            get { return lbKlientImie.Text; }
            set { lbKlientImie.Text = value; }
        }

        double CenaWyzywienia
        {
            get
            {
                double tmp = 0;
                foreach (DataGridViewRow row in dgwWyzywienie.Rows)
                {
                    if (row.IsNewRow) continue;
                    if (row.Selected)
                        tmp = Double.Parse(row.Cells[2].Value.ToString());
                }
                return tmp;
            }
        }

        public DataTable UslugiDodatkowe
        {
            set
            {
                if (dgwUslugi.DataSource != null)
                {
                    dgwUslugi.Columns.Remove("id");
                    dgwUslugi.Columns.Remove("nazwa");
                    dgwUslugi.Columns.Remove("cena");

                }
                dgwUslugi.DataSource = value;
                if (dgwUslugi.DataSource != null)
                {
                    dgwUslugi.Columns["id"].Visible = false;
                    dgwUslugi.Columns["nazwa"].ReadOnly = true;
                    dgwUslugi.Columns["cena"].ReadOnly = true;
                }
            }
        }

        public DataTable Wyzywienie
        {
            set
            {
                if (dgwWyzywienie.DataSource != null)
                {
                    dgwWyzywienie.Columns.Remove("id");
                    dgwWyzywienie.Columns.Remove("nazwa");
                    dgwWyzywienie.Columns.Remove("cena");

                }
                dgwWyzywienie.DataSource = value;
                if (dgwWyzywienie.DataSource != null)
                {
                    dgwWyzywienie.Columns["id"].Visible = false;
                    dgwWyzywienie.Columns["nazwa"].ReadOnly = true;
                    dgwWyzywienie.Columns["cena"].ReadOnly = true;
                }
            }
        }

        List<int> wybraneUslugi;

        public List<int> WybraneUslugi
        {
            get { return wybraneUslugi; }
            set { wybraneUslugi = value; }
        }
        public int WyzywienieID
        {
            get 
            { 
                int tmp = 0;
                foreach (DataGridViewRow row in dgwWyzywienie.Rows)
                {
                    if (row.IsNewRow) continue;
                    if(row.Selected)
                       tmp = Int32.Parse(row.Cells[0].Value.ToString());
                }
                return tmp;
            }
        }
        double cenaZaMiejsce;

        public double CenaZaMiejsce
        {
            get { return cenaZaMiejsce; }
            set 
            { 
                cenaZaMiejsce = value;
                lbSumarycznyKoszt.Text = ((double)nmLiczbaMiejsc.Value * cenaZaMiejsce + CenaZaUslugi * (double)nmLiczbaMiejsc.Value + CenaWyzywienia * (double)nmLiczbaMiejsc.Value).ToString();
            }
        }
        public string KlientNazwisko
        {
            get { return lbKlientNazwisko.Text; }
            set { lbKlientNazwisko.Text = value; }
        }
        public string Wycieczka
        {
            get { return lbWycieczkaNazwa.Text; }
            set { lbWycieczkaNazwa.Text = value; }
        }
        public decimal IloscMiejsc
        {
            get { return nmLiczbaMiejsc.Value; }
            set { nmLiczbaMiejsc.Value = value; }
        }
        public decimal MaxIloscMiejsc
        {
            set { nmLiczbaMiejsc.Maximum = value; }
        }

        public double KosztZamowienia
        {
            get { return Double.Parse(lbSumarycznyKoszt.Text.ToString()); }
            set { lbSumarycznyKoszt.Text = value.ToString(); }
        }

        private void btDodaj_Click(object sender, EventArgs e)
        {
            wybraneUslugi = new List<int>();
            foreach (DataGridViewRow row in dgwUslugi.Rows)
            {
                if (row.IsNewRow) continue;
                if (row.Selected)
                {
                    wybraneUslugi.Add((int)row.Cells[0].Value);
                }
            }
            this.DialogResult = DialogResult.OK;
        }

        private double CenaZaUslugi
        {
            get 
            {
                double tmp = 0;
                foreach (DataGridViewRow row in dgwUslugi.Rows)
                {
                    if (row.IsNewRow) continue;
                    if (row.Selected)
                        tmp += Double.Parse(row.Cells[2].Value.ToString());
                }
                return tmp;
            }
        }
        private void nmLiczbaMiejsc_ValueChanged(object sender, EventArgs e)
        {
            lbSumarycznyKoszt.Text = ((double)nmLiczbaMiejsc.Value * cenaZaMiejsce + CenaZaUslugi * (double)nmLiczbaMiejsc.Value + CenaWyzywienia * (double)nmLiczbaMiejsc.Value).ToString();
        }

        private void btCancel_Click(object sender, EventArgs e)
        {
            
        }

        private void clbUslugi_SelectedIndexChanged(object sender, EventArgs e)
        {
            MessageBox.Show("dziala");
        }

        private void dgwUslugi_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            double tmp = 0;
            foreach (DataGridViewRow row in dgwUslugi.Rows)
            {
                if (row.IsNewRow) continue;
                if(row.Selected)
                    tmp += Double.Parse(row.Cells[2].Value.ToString());
            }

            lbSumarycznyKoszt.Text = ((double)nmLiczbaMiejsc.Value * cenaZaMiejsce + tmp*(double)nmLiczbaMiejsc.Value).ToString();
          
        }

        private void AddEditOrder_Load(object sender, EventArgs e)
        {
            dgwUslugi.CurrentCell = null;
            lbSumarycznyKoszt.Text = ((double)nmLiczbaMiejsc.Value * cenaZaMiejsce + CenaZaUslugi * (double)nmLiczbaMiejsc.Value + CenaWyzywienia * (double)nmLiczbaMiejsc.Value).ToString();

        }
        //tu trzeba wybrać to 
        private void dgwWyzywienie_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            lbSumarycznyKoszt.Text = ((double)nmLiczbaMiejsc.Value * cenaZaMiejsce + CenaZaUslugi * (double)nmLiczbaMiejsc.Value + CenaWyzywienia * (double)nmLiczbaMiejsc.Value).ToString();
        }

        private void AddEditOrder_Paint(object sender, PaintEventArgs e)
        {
            System.Drawing.Drawing2D.LinearGradientBrush basebackground;
            basebackground = new System.Drawing.Drawing2D.LinearGradientBrush(new Point(0, 0), new Point(0, ClientSize.Height), Color.White, Color.LightGray);
            e.Graphics.FillRectangle(basebackground, ClientRectangle);
        }
    }
}
